package com.yfp.operation.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yfp.common.core.domain.R;
import com.yfp.operation.domain.MarCouponDirectional;
import com.yfp.operation.domain.dto.MarCouponDirectionalDTO;
import com.yfp.operation.domain.vo.MarCouponDirectionalVO;
import com.yfp.operation.domain.vo.TemplateVerifyVO;

import java.util.List;

/**
 * @author admin
 * @description 针对表【mar_coupon_directional(优惠券定向发放)】的数据库操作Service
 * @createDate 2024-09-13 10:55:06
 */
public interface MarCouponDirectionalService extends IService<MarCouponDirectional> {

    /**
     * 添加定向发放优惠券列表
     *
     * @param mobileList
     */
    void directionalAdd(List<String> mobileList, Long couponId);

    /**
     * 定向发放列表
     *
     * @param marCouponDirectionalDTO
     * @return
     */
    List<MarCouponDirectionalVO> directionalList(MarCouponDirectionalDTO marCouponDirectionalDTO);

    /**
     * 获取该优惠券定向发放的手机号
     *
     * @param couponId
     * @return
     */
    List<String> getMobiles(Long couponId);

    /**
     * 定向批量发放优惠券
     *
     * @param couponId
     * @return
     */
    R<Integer> grantOrienteering(Long couponId);

    /**
     * 校验模板
     *
     * @param list
     * @param couponId
     * @return
     */
    R<TemplateVerifyVO> templateVerify(List<Object> list, Long couponId);

    /**
     * 删除定向发放列表
     *
     * @param id
     */
    void deleteById(Long id);

    /**
     * 删除定向发放列表-一键删除
     *
     * @param couponId
     */
    void bulkDelByMarCouponId(Long couponId);
}
